tests/ci-commitmessage-submodules.sh: fix for RHCI
authorJonathan Lebon <jlebon@redhat.com>
Fri, 12 May 2017 18:14:22 +0000 (14:14 -0400)
committerAtomic Bot <atomic-devel@projectatomic.io>
Fri, 12 May 2017 21:02:16 +0000 (21:02 +0000)
Special-case when this script is run under RHCI, which will try to fetch
the merge commit if possible. Use RHCI_COMMIT instead to refer to the
actual PR/branch HEAD being evaluated.

Use realpath to workaround the developer's git dir being in a symbolic
link.

Closes: #857
Approved by: cgwalters

tests/ci-commitmessage-submodules.sh

index 2403579d6a64982400e27c7b41116d60451d898c..8ce077c3613df4682f3e87478cf907422257381b 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/bash
 set -euo pipefail
+
 # Copyright 2017 Colin Walters <walters@verbum.org>
 # Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php)
 
@@ -12,6 +13,10 @@ set -euo pipefail
 # It's very common for people to accidentally change submodules, and having this
 # requirement is a small hurdle to pass.
 
+# if running under RHCI, use the branch/PR HEAD actually
+# being tested rather than the merge sha
+HEAD=${RHCI_COMMIT:-HEAD}
+
 tmpd=$(mktemp -d)
 touch ${tmpd}/.tmpdir
 cleanup_tmp() {
@@ -22,13 +27,13 @@ cleanup_tmp() {
 }
 trap cleanup_tmp EXIT
 
-gitdir=$(pwd)
+gitdir=$(realpath $(pwd))
 # Create a temporary copy of this (using cp not git clone) so git doesn't
 # try to read the submodules from the Internet again.  If we wanted to
 # require a newer git, we could use `git worktree`.
 cp -a ${gitdir} ${tmpd}/workdir
 cd ${tmpd}/workdir
-git log --pretty=oneline origin/master.. | while read logline; do
+git log --pretty=oneline origin/master..$HEAD | while read logline; do
     commit=$(echo ${logline} | cut -f 1 -d ' ')
     git diff --name-only ${commit}^..${commit} > ${tmpd}/diff.txt
     git log -1 ${commit} > ${tmpd}/log.txt